#pragma warning(disable:4996)
#pragma warning(disable:6031)

#include <stdio.h>

//int main()
//{
//	int sx = 0, sy = 0;
//	int count = 0;
//	int num = 1;
//	int arr[30][30] = { 0 };
//	int n = 0;
//	int off = 1;
//	int i = 0, j = 0;
//	scanf("%d", &n);
//	count = n / 2;
//	while (count--)
//	{
//		for (j = sy; j < n - off; j++)
//		{
//			arr[sx][j] = num++;
//		}
//		for (i = sx; i < n - off; i++)
//		{
//			arr[i][j] = num++;
//		}
//		for (; j > sy; j--)
//		{
//			arr[i][j] = num++;
//		}
//		for (; i > sx; i--)
//		{
//			arr[i][j] = num++;
//		}
//		sy++;
//		sx++;
//		off++;
//	}
//	if (n % 2 == 1)
//	{
//		arr[i + 1][j + 1] = n * n;
//	}
//	for (i = 0; i < n; i++)
//	{
//		for (j = 0; j < n; j++)
//		{
//			printf("%-3d ", arr[i][j]);
//		}
//		printf("\n");
//	}
//	return 0;
//}
//int main()
//{
//	int arr[50][50] = { 0 };
//	int startx = 0;
//	int starty = 0;
//	int num = 1;
//	int off = 1;
//	int i = 0;
//	int j = 0;
//	int n = 0;
//	scanf("%d", &n);
//	if (n == 1)
//	{
//		printf("1");
//		return 0;
//	}
//	int count = n/2;
//	while (count--)
//	{
//		for (j = starty; j < n - off; j++)
//		{
//			arr[startx][j] = num++;
//		}
//		for (i = startx; i < n - off; i++)
//		{
//			arr[i][j] = num++;
//		}
//		for (; j > starty; j--)
//		{
//			arr[i][j] = num++;
//		}
//		for (; i > startx; i--)
//		{
//			arr[i][j] = num++;
//		}
//		startx++;
//		starty++;
//		off++;
//	}
//	if (n % 2 == 1)
//	{
//		arr[i+1][j+1] = n * n;
//	}
//	for (i = 0; i < n; i++)
//	{
//		for (j = 0; j < n; j++)
//		{
//			printf("%-3d ", arr[i][j]);
//		}
//		printf("\n");
//	}
//	return 0;
//}